package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import com.atguigu.jxc.entity.Unit;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description 商品信息
 */
public interface GoodsDao {


    String getMaxCode();


    /**
     * 查询当前库存（可根据商品类别、商品编码或名称搜索）
     * @param codeOrName
     * @param goodsTypeId
     */
    List listInventory(@Param("codeOrName") String codeOrName, @Param("goodsTypeId") Integer goodsTypeId);


    /**
     * 查询单位列表
     * @return
     */
    List<Unit> getUnitList();

    /**
     * 查询所有商品信息（可以根据分类、名称查询）
     * @param goodsName
     * @param goodsTypeId
     * @return
     */
    List<Goods> getGoodsList(String goodsName, Integer goodsTypeId);

    void addGoods(Goods goods);

    void updateGoods(Goods goods);

    Goods selectById(Integer goodsId);

    void deleteById(Integer goodsId);

    List<Goods> getNoInventoryQuantity(String nameOrCode);

    List<Goods> getHasInventoryQuantity(String nameOrCode);

    void saveStock(Integer goodsId, Integer inventoryQuantity, double purchasingPrice);

    void deleteStockById(Integer goodsId);

    List<Goods> listAlarm();

    String selectLastGoodsCode();
}
